package com.boarsoft.boar.sequence.service;

import java.util.Set;

import com.boarsoft.boar.sequence.snowflake.SnowflakeConfig;

/**
 * 雪花算法协调服务
 */
public interface SnowflakeService {
	/**
	 * 获取雪花算法worker配置
	 * 
	 * @param uid
	 *            分片用的UID
	 * @param seqName
	 *            序列名
	 * @param appName
	 *            应用名
	 * @param ip
	 *            IP地址
	 * @return
	 */
	SnowflakeConfig getWorkerConfig(String uid, String seqName, String appName, String ip);

	/**
	 * workerId续约服务
	 * 
	 * @param uid 分片用的UID
	 * @param ip 续约IP
	 * @param appName 应用名
	 * @param seqNames 序列名
	 * @param tags 标签
	 * @return
	 */
	int refresh(String uid, String ip, String appName, Set<String> seqNames, Set<String> tags);
}
